package com.example.interfaces.dto;

import java.math.BigDecimal;
import com.example.infrastructure.excel.ExcelExportable;
import com.example.infrastructure.excel.ExcelImportable;
import cn.idev.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import jakarta.validation.constraints.*;

/**
 * 健康档案表 DTO
 *
 * @author wangal
 * @since 2025-07-25
 */
@Data
@Schema(name = "HealthRecordsDTO", description = "健康档案表DTO")
public class HealthRecordsDTO implements ExcelExportable, ExcelImportable {

    @Schema(description = "用户ID")
    @ExcelProperty("用户ID")
    @NotNull(message = "用户ID不能为空")
    private Long userId;
    
    @Schema(description = "身高(cm)")
    @ExcelProperty("身高(cm)")
    private BigDecimal height;
    
    @Schema(description = "体重(kg)")
    @ExcelProperty("体重(kg)")
    private BigDecimal weight;
    
    @Schema(description = "血型")
    @ExcelProperty("血型")
    @NotBlank(message = "血型不能为空")
    private String bloodType;
    
    @Schema(description = "过敏史")
    @ExcelProperty("过敏史")
    @NotBlank(message = "过敏史不能为空")
    private String allergies;
    
    @Schema(description = "既往病史")
    @ExcelProperty("既往病史")
    @NotBlank(message = "既往病史不能为空")
    private String medicalHistory;
    
    @Schema(description = "紧急联系人")
    @ExcelProperty("紧急联系人")
    @NotBlank(message = "紧急联系人不能为空")
    private String emergencyContact;
    
    @Schema(description = "紧急联系电话")
    @ExcelProperty("紧急联系电话")
    @NotBlank(message = "紧急联系电话不能为空")
    private String emergencyPhone;
    
    @Schema(description = "租户编号")
    @ExcelProperty("租户编号")
    @NotNull(message = "租户编号不能为空")
    private Long tenantId;
    
}
